<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
            //this：每个函数被调用时总会关联一个上下文，即为this(如果找不到上下文，则最终会关联到window对象)
            function foo(fn){
                this.barbar = "Foo.barbar";
                if (typeof fn === "function"){
                    fn();  //通过在foo函数中调用函数fn，那么函数fn中的this即为foo函数
                }
            }
            var bar = {
                barbar : "Hello,World!",
                method:function(){
                    alert(this.barbar);
                }
            }
            //调用时,medhod中的this指的就是bar对象的上下文，此时this.barbar 与 bar.barbar等效
            bar.method();
            //调用时，这时bar.method中的this指代的是foo内部的上下文，而foo中并没有barbar的定义，因此最终this.barbar其实就是foo.barbar，所以会弹出"undefined"，如果把foo中的注释行去掉注释，就更能映证这一点
            foo(bar.method);
        </script>
    </head>
    <body>
        TODO write content
    </body>
</html>
